+++ /dev/null
-// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
-
-const Cairo = imports.cairo;
-const Lang = imports.lang;
-const St = imports.gi.St;
-
-const HorizontalSeparator = new Lang.Class({
- Name: 'HorizontalSeparator',
-
- _init: function (params) {
- this.actor = new St.DrawingArea(params);
- this.actor.connect('repaint', Lang.bind(this, this._onRepaint));
- },
-
- _onRepaint: function(area) {
- let cr = area.get_context();
- let themeNode = area.get_theme_node();
- let [width, height] = area.get_surface_size();
- let margin = themeNode.get_length('-margin-horizontal');
- let gradientHeight = themeNode.get_length('-gradient-height');
- let startColor = themeNode.get_color('-gradient-start');
- let endColor = themeNode.get_color('-gradient-end');
-
- let gradientWidth = (width - margin * 2);
- let gradientOffset = (height - gradientHeight) / 2;
- let pattern = new Cairo.LinearGradient(margin, gradientOffset, width - margin, gradientOffset + gradientHeight);
- pattern.addColorStopRGBA(0, startColor.red / 255, startColor.green / 255, startColor.blue / 255, startColor.alpha / 255);
- pattern.addColorStopRGBA(0.5, endColor.red / 255, endColor.green / 255, endColor.blue / 255, endColor.alpha / 255);
- pattern.addColorStopRGBA(1, startColor.red / 255, startColor.green / 255, startColor.blue / 255, startColor.alpha / 255);
- cr.setSource(pattern);
- cr.rectangle(margin, gradientOffset, gradientWidth, gradientHeight);
- cr.fill();
- cr.$dispose();
- }
-});